<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>06-async与await</title>
  </head>
  <body>
    <!-- 
          1. async 函数
             - async函数的返回值为promise对象
             - promise对象的结果由 async函数 执行的返回值决定
          2. await 表达式
             - await右侧的表达式一般为promise对象，但也可以是其他值
             - 如果表达式是promise对象，await返回的是promise成功的值
             - 如果表达式是其他值，直接将此作为await的返回值
          3. 注意
             - await必须写在async函数中，但async函数中可以没有await
             - 如果await的promise失败了，就会抛出异常，需要通过try...catch来捕获处理
      -->

    <script>
      // async函数的返回值为promise对象
      async function fn1() {
        // return 1;
        // throw 2
        // return Promise.reject(3)
        return Promise.resolve(3);
      }
      const result = fn1();
      console.log(result); //Promise对象

      async function fn2() {
        const value = await fn1();
        console.log("value", value);
      }

      fn2();
    </script>
  </body>
</html>
